package com.zzyl.nursing.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 护理任务响应视图对象
 * 用于封装护理任务查询接口的返回数据
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(description = "护理任务响应数据")
public class NursingRequestVo {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "创建时间", example = "2024-09-27 23:08:17")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;

    @ApiModelProperty(value = "更新人ID", example = "1")
    private String updateBy;

    @ApiModelProperty(value = "更新时间", example = "2024-09-27 23:25:18")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String updateTime;

    @ApiModelProperty(value = "任务ID", example = "191")
    private Integer id;

    @ApiModelProperty(value = "护理人员ID（可能为逗号分隔的多个ID）", example = "103")
    private String nursingId;

    @ApiModelProperty(value = "护理项目ID", example = "6")
    private Integer projectId;

    @ApiModelProperty(value = "护理项目名称", example = "洗头")
    private String projectName;

    @ApiModelProperty(value = "老人ID", example = "3")
    private Integer elderId;

    @ApiModelProperty(value = "老人姓名", example = "张飞")
    private String elderName;

    @ApiModelProperty(value = "床位号", example = "303-1")
    private String bedNumber;

    @ApiModelProperty(value = "预计服务时间", example = "2024-09-27 08:00:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime  estimatedServerTime;

    @ApiModelProperty(value = "实际服务时间", example = "2024-09-27 23:25:13")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime  realServerTime;

    @ApiModelProperty(value = "任务备注", example = "222")
    private String mark;

    @ApiModelProperty(value = "取消原因", example = "老人不舒服")
    private String cancelReason;

    @ApiModelProperty(value = "任务状态（1-未完成，2-已完成等）", example = "2")
    private Integer status;

    @ApiModelProperty(value = "任务图片URL", example = "https://itheim.oss-cn-beijing.aliyuncs.com/1d7763da-f02e-4b81-b414-2d23e7503a6e.jpg")
    private String taskImage;

    @ApiModelProperty(value = "护理人员姓名列表", example = "[\"小白\"]")
    private List<String> nursingName;

    @ApiModelProperty(value = "护理等级名称", example = "5号护理等级")
    private String nursingLevelName;

    @ApiModelProperty(value = "老人年龄", example = "72")
    private Integer age;

    @ApiModelProperty(value = "更新人姓名", example = "若依")
    private String updater;
    // 修正后：明确说明 gender 是性别编码，示例用 1/0 这类数值
    @ApiModelProperty(value = "性别编码（1：男，0：女 等，按实际约定）", example = "1")
    private Integer sex;
    @ApiModelProperty(value = "备注信息", example = "若依")
    private String remark;
}
